جزوه جامع فصل سوم · مدیریت سخت‌افزار، بوت و دیسک ← بازگشت به فهرست
📘 فصل سوم · مدیریت سخت‌افزار، بوت و دیسک مرور جامع نکات امتحانی
📅 تاریخ: ۲۶ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian/Red Hat

▍ ۱. مراحل بوت (Boot Process) در لینوکس

فرآیند بوت شامل مراحل زیر است: روشن شدن → BIOS/UEFI (اجرای POST و شناسایی دستگاه‌ها) → انتخاب دستگاه بوت → اجرای Bootloader (GRUB) → بارگذاری هسته (Kernel) → اجرای اولین پردازش (systemd با PID 1) → اجرای فایل‌های target → ورود کاربر.

🔑 نکته طلایی: اولین پردازش در لینوکس همیشه systemd (یا در سیستم‌های قدیمی‌تر init) است که PID شماره ۱ را دارد.

• نمایش اطلاعات سخت‌افزاری با /proc

/proc یک سیستم فایل مجازی است که اطلاعات لحظه‌ای هسته را در اختیار شما قرار می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel model name : 11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz cpu cores : 6 ...

توضیح: اطلاعات کامل پردازنده شامل مدل، تعداد هسته‌ها و فرکانس را نمایش می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ cat /proc/meminfo MemTotal: 16110564 kB MemFree: 11549800 kB SwapTotal: 2097148 kB ...

توضیح: اطلاعات دقیق حافظه RAM و Swap، از جمله کل حافظه (MemTotal) و حافظه آزاد (MemFree).

┌──(ya3in㉿kali)-[~] └─$ free -h total used free shared buff/cache available Mem: 15Gi 3.5Gi 10Gi 812Mi 2.0Gi 11Gi Swap: 2.1Gi 272Ki 2.1Gi

توضیح: خلاصه‌ای از وضعیت حافظه به صورت قابل خواندن (Human-readable). -h باعث نمایش حجم با واحدهای Gi, Mi می‌شود.

▍ ۲. ماژول‌های هسته (Kernel Modules)

ماژول‌ها قطعه‌های کدی هستند که می‌توان آنها را به‌صورت پویا به هسته اضافه یا از آن حذف کرد (بدون نیاز به ری‌بوت).

┌──(ya3in㉿kali)-[~] └─$ lsmod Module Size Used by mt7921e 53248 0 mt7921_common 24576 1 mt7921e mac80211 983040 3 ... ...

توضیح: لیست ماژول‌های بارگذاری‌شده در هسته. ستون Used by نشان می‌دهد که هر ماژول توسط کدام ماژول‌های دیگر استفاده می‌شود.

┌──(ya3in㉿kali)-[~] └─$ modinfo mt7921e filename: /lib/modules/.../mt7921e.ko description: MediaTek MT7921E 802.11ax wireless driver author: Lorenzo Bianconi depends: mt7921_common,mt792x_core,...

توضیح: نمایش اطلاعات دقیق یک ماژول خاص مانند نویسنده، توضیحات و وابستگی‌ها (depends).

┌──(ya3in㉿kali)-[~] └─$ sudo modprobe vfat └─$ sudo modprobe -r vfat

توضیح: modprobe ماژول را به همراه تمام وابستگی‌هایش بارگذاری می‌کند. گزینه -r ماژول را از هسته حذف (Unload) می‌کند. تفاوت modprobe با insmod در این است که modprobe وابستگی‌ها را خودکار مدیریت می‌کند.

▍ ۳. دیسک‌ها و پارتیشن‌بندی (Partitioning)

انواع دیسک: PATA (قدیمی، موازی)، SATA (رایج، سریال) و SCSI (سرورها). در لینوکس همه با نام /dev/sdX شناسایی می‌شوند. دو نوع جدول پارتیشن وجود دارد: MBR (قدیمی، حداکثر ۴ پارتیشن اصلی، حجم تا ۲TB) و GPT (جدید، تا ۱۲۸ پارتیشن، حجم بسیار بالا).

┌──(ya3in㉿kali)-[~] └─$ sudo fdisk -l Disk /dev/nvme0n1: 476.9 GiB, ... Device Boot Start End Sectors Size Id Type /dev/nvme0n1p1 2048 532479 530432 260M 83 Linux /dev/nvme0n1p2 532480 565247 32768 16M 83 Linux ...

توضیح: نمایش جدول پارتیشن همه دیسک‌ها. ستون Id نشان‌دهنده نوع پارتیشن است (مثلاً ۸۳ برای لینوکس، ۸۲ برای Swap).

┌──(ya3in㉿kali)-[~] └─$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p5 259:5 0 977M 0 part /boot/efi ├─nvme0n1p6 259:6 0 38G 0 part / └─nvme0n1p7 259:7 0 2.1G 0 part [SWAP]

توضیح: نمایش ساختار درختی دیسک‌ها. TYPE مشخص می‌کند که یک disk است یا part (پارتیشن). MOUNTPOINTS نشان می‌دهد که هر پارتیشن به کدام دایرکتوری متصل شده است.

• مراحل کار با یک دیسک جدید

  1. پارتیشن‌بندی: sudo fdisk /dev/sdX (با کلیدهای n برای ایجاد، w برای ذخیره).
  2. فرمت کردن: sudo mkfs.ext4 /dev/sdX1 (ایجاد سیستم فایل ext4).
  3. نصب (Mount): sudo mount /dev/sdX1 /mnt/mydisk (اتصال به دایرکتوری).
  4. نصب دائمی: افزودن خطی به /etc/fstab مانند /dev/sdX1 /mnt/mydisk ext4 defaults 0 0.

▍ ۴. LVM (Logical Volume Manager)

LVM یک لایه انتزاعی است که مدیریت دیسک را انعطاف‌پذیر می‌کند. اجزای آن: Physical Volume (PV) (دیسک یا پارتیشن فیزیکی)، Volume Group (VG) (ترکیبی از PVها) و Logical Volume (LV) (مشابه پارتیشن که می‌توان اندازه آن را تغییر داد).

┌──(ya3in㉿kali)-[~] └─$ sudo pvcreate /dev/sdb1 /dev/sdb2 Physical volume "/dev/sdb1" successfully created. └─$ sudo vgcreate myvg /dev/sdb1 /dev/sdb2 Volume group "myvg" successfully created └─$ sudo lvcreate -n mylv -L 10G myvg Logical volume "mylv" created. └─$ sudo mkfs.ext4 /dev/mapper/myvg-mylv └─$ sudo mount /dev/mapper/myvg-mylv /mnt/mylv

توضیح گام‌به‌گام: ابتدا دو پارتیشن را به عنوان PV تعریف می‌کنیم. سپس یک VG به نام myvg از آنها می‌سازیم. در مرحله بعد یک LV به نام mylv با حجم ۱۰ گیگابایت از این VG ایجاد کرده، آن را با ext4 فرمت کرده و در /mnt/mylv mount می‌کنیم.

• حذف LVM (به ترتیب معکوس)

┌──(ya3in㉿kali)-[~] └─$ sudo umount /mnt/mylv └─$ sudo lvremove /dev/mapper/myvg-mylv └─$ sudo vgremove myvg └─$ sudo pvremove /dev/sdb1 /dev/sdb2

توضیح: برای پاک کردن LVM، ابتدا آن را umount کرده، سپس LV، VG و در نهایت PV را حذف می‌کنیم.

▍ ۵. RAID (Redundant Array of Independent Disks)

سطحنام دیگرحداقل دیسکتحمل خرابیکاربرد
RAID 0Striping2❌ هیچسرعت بالا (بدون امنیت)
RAID 1Mirroring2✅ ۱ دیسکامنیت بالا (فضا نصف می‌شود)
RAID 5Parity3✅ ۱ دیسکتعادل سرعت و امنیت
RAID 6Double Parity4✅ ۲ دیسکامنیت بیشتر (هزینه بالاتر)
RAID 10Mirror+Stripe4✅ ۲ دیسکبهترین عملکرد و امنیت (گران)
💡 نکته: RAID جایگزین پشتیبان‌گیری (Backup) نیست و فقط در برابر خرابی سخت‌افزاری دیسک محافظت می‌کند.

• ساخت RAID 0 با mdadm

┌──(ya3in㉿kali)-[~] └─$ sudo mdadm --create /dev/md0 --level=raid0 --raid-devices=2 /dev/sd[b-c]1 └─$ cat /proc/mdstat Personalities : [raid0] md0 : active raid0 sdc1[1] sdb1[0] 20970496 blocks super 1.2 512k chunks

توضیح: یک آرایه RAID 0 با نام /dev/md0 از دو دیسک می‌سازیم. cat /proc/mdstat وضعیت آرایه را نشان می‌دهد.

• پاک کردن RAID

┌──(ya3in㉿kali)-[~] └─$ sudo mdadm --stop /dev/md0 └─$ sudo mdadm --zero-superblock /dev/sdb1

▍ ۶. ساختار دیسک و مانیتورینگ فضا

ساختار دایرکتوری لینوکس از استاندارد FHS پیروی می‌کند. دایرکتوری‌های مهم: /boot (فایل‌های بوت)، /etc (تنظیمات)، /home (داده‌های کاربران)، /var (لاگ‌ها و داده‌های متغیر).

┌──(ya3in㉿kali)-[~] └─$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 40G 12G 26G 32% / /dev/sdb1 100G 45G 55G 45% /home

توضیح: نمایش فضای استفاده‌شده و آزاد پارتیشن‌ها به صورت قابل خواندن. Use% درصد استفاده از هر پارتیشن را نشان می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ du -sh /home/* 1.2G /home/ya3in 450M /home/user1

توضیح: du -sh حجم کل هر دایرکتوری را نمایش می‌دهد. این دستور برای پیدا کردن پوشه‌های بزرگ بسیار مفید است.

┌──(ya3in㉿kali)-[~] └─$ sudo apt install sysstat └─$ iostat -x 2

توضیح: iostat آمار لحظه‌ای ورودی/خروجی دیسک را نمایش می‌دهد. گزینه -x اطلاعات دقیق و 2 به‌روزرسانی هر ۲ ثانیه را نشان می‌دهد.

📌 نکات طلایی برای امتحان (جمع‌بندی نهایی)
  • اولین پردازش: همیشه systemd با PID 1 است.
  • دستور نمایش ماژول‌ها: lsmod و اطلاعات دقیق ماژول با modinfo.
  • مدیریت پارتیشن: fdisk برای MBR و gdisk برای GPT.
  • مراحل LVM: pvcreate → vgcreate → lvcreate → mkfs → mount.
  • RAID 0: فقط سرعت، بدون تحمل خطا. RAID 1: آینه‌سازی، امنیت بالا. RAID 5: تعادل سرعت و امنیت با یک Parity.
  • نصب دائمی: با ویرایش فایل /etc/fstab و تست با mount -a.
  • فضای دیسک: df -h برای پارتیشن‌ها و du -sh برای دایرکتوری‌ها.
  • مسیر لاگ‌ها: /var/log/ محل ذخیره فایل‌های لاگ سیستم است.
✅ تمرین عملی پیشنهادی
  • با lsblk و sudo fdisk -l اطلاعات دیسک‌های سیستم خود را بررسی کنید.
  • ماژول vfat را با modprobe بارگذاری کرده و با lsmod | grep vfat تأیید کنید.
  • یک پارتیشن جدید (یا فایل loop) را با LVM به صورت تمرینی ایجاد و حذف کنید.
  • با df -h و du -sh فضای اشغال‌شده توسط دایرکتوری /var/log را بررسی کنید.